home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / mis_cnvt / ntx2dbf / listntx.prg next >
Encoding:
Text File  |  1993-01-04  |  2.4 KB  |  104 lines

  1. clear all 
  2. clear 
  3. SET CONFIRM ON
  4. *** display title box
  5. LINE1='LIST NTX FILE INFORMATION'
  6. LINE2='TODAY IS '+NAMEDATE()
  7. CENTERBOX(2,LINE1,LINE2)
  8.  
  9. *** get name of output file
  10. OUTFILE=SPAC(12)
  11. @5,10 SAY 'ENTER OUTPUT FILE NAME' GET OUTFILE
  12. READ
  13.  
  14. *** check if file already exists
  15. IF FILE('&OUTFILE')
  16.    LINE1='THIS FILE: '+OUTFILE+' ALREADY EXISTS'
  17.    LINE2='PRESS "Y" TO USE ANYWAY, ANY OTHER KEY TO EXIT'
  18.    CENTERBOX(7,LINE1,LINE2)
  19.    RESP=CHR(INKEY(0))
  20.    IF RESP='Y'
  21.      @6,0 CLEAR
  22.    ELSE
  23.       CLEAR SCREEN
  24.       RETURN
  25.    ENDIF
  26. ENDIF   
  27. SET COLOR TO W+*/N
  28. @7,35 SAY 'WORKING'
  29. SET COLOR TO
  30.  
  31. *** get all .ntx filenames into database file
  32. run dir *.ntx>NTXS.TXT
  33. select 1
  34. if file("NTXS.DBF")
  35.    use NTXS
  36.    zap 
  37. else 
  38.    create prg_stru
  39.    use prg_stru
  40.    append blank 
  41.    replace field_name with "NAME",field_type with "C",field_len with 8
  42.    close databases 
  43.    create NTXS from prg_stru
  44.    erase prg_stru.dbf
  45.    use NTXS
  46. endif 
  47. append from NTXS.TXT SDF
  48. delete for NAME=" "
  49. pack 
  50. go top 
  51.  
  52. *** open output file & insert headings
  53. OUTHANDLE=FCREATE('&OUTFILE')
  54. TMPSTR='NTX NAME'+' '+'INDEX EXPRESSION'+SPAC(44)+'DBF NAME'+CHR(13)+CHR(10)
  55. FWRITE(OUTHANDLE,TMPSTR)
  56. TMPSTR=REPLICATE('-',79)+CHR(13)+CHR(10)
  57. FWRITE(OUTHANDLE,TMPSTR)
  58. TMPSTR=''
  59. LNCOUNT=2
  60. do while .not. eof()
  61.    *** open index file
  62.    fname=trim(name)+'.NTX'
  63.    inHANDLE = fopen("&fname")
  64.    if ferror() <> 0
  65.       ? "File open error on "+fname
  66.       wait 
  67.       fclose(INHANDLE)
  68.       FCLOSE(OUTHANDLE)
  69.       CLOSE DATABASES
  70.       CLEAR SCREEN
  71.       return 
  72.    endif 
  73.  
  74.    *** first get the index expression 
  75.    FSEEK(INHANDLE,22)
  76.    INDEXP = FREADSTR(INHANDLE,128)
  77.    INDEXP = TRIM(INDEXP)
  78.  
  79.    *** next get the database inserted by NTXCAT or FNTXCAT
  80.    FSEEK(INHANDLE,1008)
  81.    DBF_NAME=FREADSTR(INHANDLE,8)
  82.    DBF_NAME=TRIM(DBF_NAME)
  83.    OBUFFER=NAME+' '+PAD(INDEXP,60)+' '+DBF_NAME+CHR(13)+CHR(10)
  84.    IF LNCOUNT>=60
  85.       LNCOUNT=2
  86.       TMPSTR=CHR(12)+CHR(13)+CHR(10)
  87.       FWRITE(OUTHANDLE,TMPSTR)
  88.       TMPSTR='NTX NAME'+' '+'INDEX EXPRESSION'+SPAC(44)+'DBF NAME'+CHR(13)+CHR(10)
  89.       FWRITE(OUTHANDLE,TMPSTR)
  90.       TMPSTR=REPLICATE('-',79)+CHR(13)+CHR(10)
  91.       FWRITE(OUTHANDLE,TMPSTR)
  92.       TMPSTR=''      
  93.    ENDIF
  94.  
  95.    *** output to text file
  96.    FWRITE(OUTHANDLE,OBUFFER)
  97.    LNCOUNT=LNCOUNT+1
  98.    FCLOSE(INHANDLE)
  99.    SKIP
  100. ENDDO   
  101. FCLOSE(OUTHANDLE)
  102. CLEAR ALL
  103. CLEAR SCREEN
  104. RETURN